package com.ffcs.crmd.tsp.admin.api.dto;

import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ffcs.crmd.platform.core.ddd.api.dto.impl.DomBaseDTO;
import com.ffcs.crmd.tsp.api.dto.enu.JobDetailState;

/**
 * 
 * 功能说明:子任务DTO
 *
 * @author ZHONGFUHUA
 * 
 * @Date 2016年4月26日 下午6:34:05
 *
 *
 * 版本号  |   作者   |  修改时间   |   修改内容
 *
 */
public class JobDetailDTO extends DomBaseDTO {
    
    /**
     * 
     */
    private static final long       serialVersionUID = 4070885868452482211L;
    
    /**
     * 主键
     */
    private Long                    id;
    
    /**
     * 父任务
     */
    private Long                    jobId;
    
    /**
     * 
     */
    private long                    runtimes;
    
    /**
     * 
     */
    private Short                   running;
    
    /**
     * 任务名
     */
    private String                  jobName;
    
    /**
     * 任务名
     */
    private String                  name;
    
    /**
     * 集群名
     */
    private String                  clusterName;
    
    /**
     * 任务描述
     */
    private String                  description;
    
    /**
     * 是否在跑
     */
    private JobDetailState          jobDetailState   = JobDetailState.NORMAL;
    
    /**
     * 上次执行时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date                    prevTime;
    
    /**
     * 下次执行时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date                    nextTime;
    
    /**
     * 触发时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date                    fireTime;
    
    /**
     * 开始执行时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date                    startTime;
    
    /**
     * 开始执行时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date                    endTime;
    
    /**
     * 子任务参数
     */
    private List<JobDetailParamDTO> params;
    
    /**
     * 子任务添加类型
     */
    private String                  jobDetailAddType;
    
    /**
     * (单独添加)-> 取模值
     */
    private Integer                 modelValue;
    
    /**
     * (批量分片键添加、批量添加)-> 模数
     */
    private Integer                 modelNum;
    
    /**
     * (批量分片键添加、批量添加)-> 模起始值
     */
    private Integer                 modelBeginValue;
    
    /**
     * (批量分片键添加、批量添加)-> 新增批量个数
     */
    private int                     batchNum;
    
    /**
     * (批量分片键添加、批量添加)-> 批量新增起始序号
     */
    private int                     batchBeginValue;
    
    /**
     * 功能说明: 获取主键
     *
     * @return id 主键
     */
    public Long getId() {
        return id;
    }
    
    /**
     * 功能说明: 设置主键
     *
     * @param id 主键 
     */
    public void setId(Long id) {
        this.id = id;
    }
    
    /**
     * 功能说明: 获取父任务
     *
     * @return jobId 父任务
     */
    public Long getJobId() {
        return jobId;
    }
    
    /**
     * 功能说明: 设置父任务
     *
     * @param jobId 父任务 
     */
    public void setJobId(Long jobId) {
        this.jobId = jobId;
    }
    
    /**
     * 功能说明: 获取任务名
     *
     * @return jobName 任务名
     */
    public String getJobName() {
        return jobName;
    }
    
    /**
     * 功能说明: 设置任务名
     *
     * @param jobName 任务名 
     */
    public void setJobName(String jobName) {
        this.jobName = jobName;
    }
    
    /**
     * 功能说明: 获取任务名
     *
     * @return name 任务名
     */
    public String getName() {
        return name;
    }
    
    /**
     * 功能说明: 设置任务名
     *
     * @param name 任务名 
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * 功能说明: 获取集群名
     *
     * @return clusterName 集群名
     */
    public String getClusterName() {
        return clusterName;
    }
    
    /**
     * 功能说明: 设置集群名
     *
     * @param clusterName 集群名 
     */
    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }
    
    /**
     * 功能说明: 获取任务描述
     *
     * @return description 任务描述
     */
    public String getDescription() {
        return description;
    }
    
    /**
     * 功能说明: 设置任务描述
     *
     * @param description 任务描述 
     */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /**
     * 功能说明: 获取是否在跑
     *
     * @return jobDetailState 是否在跑
     */
    public JobDetailState getJobDetailState() {
        return jobDetailState;
    }
    
    /**
     * 功能说明: 设置是否在跑
     *
     * @param jobDetailState 是否在跑 
     */
    public void setJobDetailState(JobDetailState jobDetailState) {
        this.jobDetailState = jobDetailState;
    }
    
    /**
     * 功能说明: 获取上次执行时间
     *
     * @return prevTime 上次执行时间
     */
    public Date getPrevTime() {
        return prevTime;
    }
    
    /**
     * 功能说明: 设置上次执行时间
     *
     * @param prevTime 上次执行时间 
     */
    public void setPrevTime(Date prevTime) {
        this.prevTime = prevTime;
    }
    
    /**
     * 功能说明: 获取下次执行时间
     *
     * @return nextTime 下次执行时间
     */
    public Date getNextTime() {
        return nextTime;
    }
    
    /**
     * 功能说明: 设置下次执行时间
     *
     * @param nextTime 下次执行时间 
     */
    public void setNextTime(Date nextTime) {
        this.nextTime = nextTime;
    }
    
    /**
     * 功能说明: 获取触发时间
     *
     * @return fireTime 触发时间
     */
    public Date getFireTime() {
        return fireTime;
    }
    
    /**
     * 功能说明: 设置触发时间
     *
     * @param fireTime 触发时间 
     */
    public void setFireTime(Date fireTime) {
        this.fireTime = fireTime;
    }
    
    /**
     * 功能说明: 获取开始执行时间
     *
     * @return startTime 开始执行时间
     */
    public Date getStartTime() {
        return startTime;
    }
    
    /**
     * 功能说明: 设置开始执行时间
     *
     * @param startTime 开始执行时间 
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    
    /**
     * 功能说明: 获取开始执行时间
     *
     * @return endTime 开始执行时间
     */
    public Date getEndTime() {
        return endTime;
    }
    
    /**
     * 功能说明: 设置开始执行时间
     *
     * @param endTime 开始执行时间 
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    
    /**
     * 功能说明: 获取子任务参数
     *
     * @return params 子任务参数
     */
    public List<JobDetailParamDTO> getParams() {
        return params;
    }
    
    /**
     * 功能说明: 设置子任务参数
     *
     * @param params 子任务参数 
     */
    public void setParams(List<JobDetailParamDTO> params) {
        this.params = params;
    }
    
    /**
     * 功能说明: 获取子任务添加类型
     *
     * @return jobDetailAddType 子任务添加类型
     */
    public String getJobDetailAddType() {
        return jobDetailAddType;
    }
    
    /**
     * 功能说明: 设置子任务添加类型
     *
     * @param jobDetailAddType 子任务添加类型 
     */
    public void setJobDetailAddType(String jobDetailAddType) {
        this.jobDetailAddType = jobDetailAddType;
    }
    
    /**
     * 功能说明: 获取(单独添加)->取模值
     *
     * @return modelValue (单独添加)->取模值
     */
    public Integer getModelValue() {
        return modelValue;
    }
    
    /**
     * 功能说明: 设置(单独添加)->取模值
     *
     * @param modelValue (单独添加)->取模值 
     */
    public void setModelValue(Integer modelValue) {
        this.modelValue = modelValue;
    }
    
    /**
     * 功能说明: 获取(批量分片键添加、批量添加)->模数
     *
     * @return modelNum (批量分片键添加、批量添加)->模数
     */
    public Integer getModelNum() {
        return modelNum;
    }
    
    /**
     * 功能说明: 设置(批量分片键添加、批量添加)->模数
     *
     * @param modelNum (批量分片键添加、批量添加)->模数 
     */
    public void setModelNum(Integer modelNum) {
        this.modelNum = modelNum;
    }
    
    /**
     * 功能说明: 获取(批量分片键添加、批量添加)->模起始值
     *
     * @return modelBeginValue (批量分片键添加、批量添加)->模起始值
     */
    public Integer getModelBeginValue() {
        return modelBeginValue;
    }
    
    /**
     * 功能说明: 设置(批量分片键添加、批量添加)->模起始值
     *
     * @param modelBeginValue (批量分片键添加、批量添加)->模起始值 
     */
    public void setModelBeginValue(Integer modelBeginValue) {
        this.modelBeginValue = modelBeginValue;
    }
    
    /**
     * 功能说明: 获取(批量分片键添加、批量添加)->新增批量个数
     *
     * @return batchNum (批量分片键添加、批量添加)->新增批量个数
     */
    public int getBatchNum() {
        return batchNum;
    }
    
    /**
     * 功能说明: 设置(批量分片键添加、批量添加)->新增批量个数
     *
     * @param batchNum (批量分片键添加、批量添加)->新增批量个数 
     */
    public void setBatchNum(int batchNum) {
        this.batchNum = batchNum;
    }
    
    /**
     * 功能说明: 获取(批量分片键添加、批量添加)->批量新增起始序号
     *
     * @return batchBeginValue (批量分片键添加、批量添加)->批量新增起始序号
     */
    public int getBatchBeginValue() {
        return batchBeginValue;
    }
    
    /**
     * 功能说明: 设置(批量分片键添加、批量添加)->批量新增起始序号
     *
     * @param batchBeginValue (批量分片键添加、批量添加)->批量新增起始序号 
     */
    public void setBatchBeginValue(int batchBeginValue) {
        this.batchBeginValue = batchBeginValue;
    }
    
    /**
     * 功能说明: 获取
     *
     * @return runtimes 
     */
    public long getRuntimes() {
        return runtimes;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param runtimes  
     */
    public void setRuntimes(long runtimes) {
        this.runtimes = runtimes;
    }
    
    /**
     * 功能说明: 获取
     *
     * @return running 
     */
    public Short getRunning() {
        return running;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param running  
     */
    public void setRunning(Short running) {
        this.running = running;
    }
    
}
